1. Field of the Invention
The present invention generally relates to devices, systems, and methods for storing information on an information storage medium, and particularly to writing envelopes of information to a storage media so as to minimize the effect or number of invalid blocks of information.
2. Related Art
Information storage media devices, such as magnetic tape media, are used by computer peripheral devices to store and record data. In particular, linear data tape is one variety of storage media that may be read and/or written as the linear data tape streams past a head assembly. Tape moves past the head assembly in both a forward or reverse direction, and one or more “tracks” of information are recorded or read from the tape in a direction that is parallel with the direction of the movement of the tape.
A media drive may be used with a storage medium. Media drives typically include a head assembly to write and/or read information to a storage media. A head assembly (e.g., a transducer head assembly) may include multiple heads that are laterally adjacent to each other. The head assembly may also include adjacent “read” and “write” heads. For example, writing to a storage media may be confirmed by a “read” head that reads the storage media as (or immediately after) it is written. The storage media is typically organized so that it can interact with the head assembly. According to one format, physical tracks may be grouped according to bands, channels and logical tracks. A physical track is the area transversed on the tape medium by a transducer head at a particular lateral position. Physical tracks laterally adjacent to each other and traversed by the same transducer head at different lateral positions within a band are associated with the same “channel.” (For the sake of convenience, we will sometimes refer herein to a head operating within a band as a “channel.”) For example, multiple physical tracks written by one head in the same direction may be laterally adjacent to each other as a group, followed by another set of physical tracks associated with another channel. A head can step laterally to write physical tracks within a band, but stops before it reaches a track written by the next adjacent head in the head assembly, to avoid overwriting the track written by the next adjacent head. The group of physical tracks associated with a channel corresponds to a “logical track.” Unless otherwise indicated herein, any reference to a “track” refers to a physical track. All the adjacent physical tracks traversed in one direction by all transducer heads in a head assembly represent a “band.”
The media drive (e.g., a tape drive) receives data from the computer or data processing system. The information is typically formatted (e.g., by a formatter) into a sequence of blocks that may be recorded into tracks. Blocks may be data blocks (e.g., containing user data), error correction code (“ECC”) blocks, information blocks (e.g., containing metadata, such as filemarks, directories, Dmarks, etc.), or combinations thereof. Typically, each block also contains additional information such as a preamble, a header, a postamble (including ECC information). For example, blocks typically include a block number or block address assigned by the formatter. Blocks may be recorded (written) to the tape in a sequential manner. Blocks are typically the smallest elements of information that are read and written. Each block is written by a single head with an unwritten gap between the blocks.
Blocks of information may be organized in any appropriate format so that they can be accurately read and written to the tape media by a head assembly. Blocks may also be organized into an entity, which is a group of blocks that is protected by error correction codes (ECC). Furthermore, multiple entities may be combined to form an envelope. Envelopes can include one or more entities, and can be written to the storage media at the same time. A formatter may also organize blocks of information into an envelope. A media drive generally writes each envelope of information (consisting of blocks of information) sequentially to the storage media. For example, the media drive may organize information (e.g., user data, error correction codes, metadata, etc.) into blocks, and then write the blocks as one or more envelopes onto the storage medium. Thus, envelopes may be sequentially written to the storage medium.
During the writing of each envelope of information to a storage medium, the media drive typically verifies that each block that is written was correctly written. For example, when writing to a linear tape, the drive verifies that both the block content (CRC) and the vertical position of the block (PES) were correctly written (e.g., using a read-after-write technique). The media drive can apply a variety of rules (or logic) to determine if the block is accurate or not. A block is repeatedly written until it has been accurately recorded. Writing of an envelope is not completed and closed until all of the blocks of the envelope have been accurately written. Thus, an envelope may contain a predefined amount of information; however, the number of blocks (and thus the size of the envelope) that is written to a given storage medium may vary. The more defects that a storage medium contains, the larger the envelope will be. Invalid (or erroneous) blocks of information are not erased, and typically cannot be marked as invalid, because the read head that verifies the block accuracy lags the write head (e.g., the block is read for accuracy verification after it has already passed beyond the write head). Various techniques known as back link techniques and k-bit (or kill bit) techniques may be used to mark or otherwise map the bad blocks. Marker reference signals indicating “bad blocks” may still present a problem, because in some cases the bad block still exists, and there is a finite probability that (over time and a number of permutations) the bad block or reference marker can be “misinterpreted” by some drive reading the storage medium.
One of the principle causes of errors in writing blocks to a storage medium is defects in the storage medium itself. For example, a magnetic tape medium typically comprises a thin film of magnetic material that stores the data. The tape medium may be moved past a head assembly so that information may be written or read to the tape. Defects in the storage medium may have been created during the original manufacture and assembly of the storage device, or they may have developed at a later point. One common defect in tape media is non-magnetic regions on the tape, where the magnetic coating is not applied with adequate thickness or is applied with protrusions on the surface of the medium (e.g., roughness), causing a loss of signal due. Another very common cause for errors is the temporary separation between the tape and the transducer head. Temporary separation between the tape and a head of the head assembly is particularly troubling when a read head is separated, preventing the drive from confirming that a write or erasure has succeeded or failed. Thus, a “good” block may be mistakenly considered a “bad” block, resulting in what is referred to as a ghost block. For example, the read head may be temporarily separated from a tape media during a read-after-write verification, but the but the write head does contact the tape, and so a block is correctly written (although the verification has failed), causing the block to be considered “bad,” and be re-written. This results in two “good” copies that may both be read by a media drive (although a record of the ghost copy may be retained). In some cases, even procedures to erase (or “kill”) duplicate ghost blocks may not be successful, because such blocks may not be easily erased, or the tape separation problem may prevent erasure or confirmation of erasure.
Ghost blocks (duplicate data) represents a problem that the drive (and storage media) must address in order to accurately store and retrieve data. Bad blocks (including ghost blocks) must be detected and removed from the envelope. Generally, to remove or filter ghost blocks from an envelope of blocks that include ghost and real blocks (e.g., logical envelope blocks), the entire envelope is typically loaded into a memory (e.g., a drive envelope memory) and a “hashing” type check is done to verify various attributes so that a decision can be made about what blocks belong to the envelope and which blocks do not belong. Blocks that have been successfully erased may not be included in this process, however “ghost” blocks may be included. Thus, the size of the envelope that was actually written to the media (the logical size plus ghost blocks) must fit into the memory. If the size of the envelope exceeds a threshold (e.g., determined by the size of the drive memory and/or processor speed of the drive), the media drive may declare a hard write error (or a fatal error). Furthermore, the presence of bad blocks (e.g., ghost blocks or out-of-date blocks) also requires complicated systems to distinguish good blocks from bad blocks. Existing media drives must carefully limit the number of allowable re-writes to protect the integrity of information stored on the storage media. Since bad blocks are often intermixed with good blocks, media drives must be able to accurately avoid the bad (e.g., ghost) blocks, while accessing the good blocks.
Thus, it is desirable to provide more error-tolerant devices, methods and systems for writing information to a storage medium which may address some of the problems identified above.